home *** CD-ROM | disk | FTP | other *** search
- public class CalcManager {
- public static StringBuffer currVal;
- public static long currValL = MathFP.toFP("0");
- public static boolean hasDecimal;
- public static boolean decimal;
- private static int digCounter = 0;
- public static boolean negative = false;
- public static int[] numbers;
- public static boolean error = false;
- public static boolean isNewValue = true;
- public static long memory = MathFP.toFP("0");
-
- public static void addCurrent(int var0) {
- if (isNewValue && var0 == 10 && digCounter == 0) {
- currVal.delete(0, currVal.length());
- currVal.append("0");
- currVal.append(".");
- hasDecimal = true;
- negative = false;
- digCounter = 1;
- } else if (digCounter < 8) {
- if (var0 == 10 && !hasDecimal) {
- currVal.append(".");
- hasDecimal = true;
- if (digCounter == 0) {
- ++digCounter;
- }
- } else if (digCounter == 0) {
- if (var0 != 0) {
- currVal.delete(0, currVal.length());
- negative = false;
- currVal.append(Integer.toString(var0));
- ++digCounter;
- } else {
- currVal.delete(0, currVal.length());
- negative = false;
- currVal.append(Integer.toString(var0));
- }
- } else if (var0 != 10) {
- currVal.append(Integer.toString(var0));
- ++digCounter;
- }
- }
-
- }
-
- public static void clearCurrValue() {
- currVal.delete(0, currVal.length());
- currVal.append("0");
- digCounter = 0;
- hasDecimal = false;
- negative = false;
- isNewValue = true;
- currValL = MathFP.toFP("0");
- }
-
- public static void delLast() {
- if (digCounter > 0 && currVal.length() > 0) {
- if (currVal.charAt(currVal.length() - 1) != '.') {
- --digCounter;
- }
-
- if (currVal.charAt(currVal.length() - 1) == '.') {
- hasDecimal = false;
- }
-
- currVal.deleteCharAt(currVal.length() - 1);
- if (digCounter == 0) {
- currVal.delete(0, currVal.length());
- currVal.append("0");
- negative = false;
- }
- } else if (digCounter == 0) {
- currVal.delete(0, currVal.length());
- currVal.append("0");
- negative = false;
- }
-
- if (digCounter == 1 && getCurrValueL() == MathFP.toFP("0")) {
- digCounter = 0;
- hasDecimal = false;
- currVal.delete(0, currVal.length());
- currVal.append("0");
- currValL = MathFP.toFP("0");
- negative = false;
- }
-
- currValL = MathFP.toFP(getCurrValue());
- }
-
- public static String getCurrValue() {
- String var0 = currVal.toString();
- int var1 = 0;
- int var2 = var0.length();
- if (var0.indexOf(".") >= 8) {
- error = true;
- return "0";
- } else {
- if (var2 < 8) {
- var1 = var2;
- } else if (var0.indexOf(".") < 8) {
- if (var2 >= 9) {
- var1 = 9;
- } else {
- var1 = 8;
- }
- }
-
- var0 = var0.substring(0, var1);
- if (negative) {
- var0 = "-" + var0;
- }
-
- return var0;
- }
- }
-
- public static long getCurrValueL() {
- String var0 = currVal.toString();
- if (negative) {
- var0 = "-" + var0;
- }
-
- return MathFP.toFP(var0);
- }
-
- public static String getCurrValueParse() {
- String var0 = currVal.toString();
- int var1 = 0;
- int var2 = var0.length();
- if (var0.indexOf(".") >= 8) {
- error = true;
- return "0";
- } else {
- if (var2 < 8) {
- var1 = var2;
- } else if (var0.indexOf(".") < 8) {
- if (var2 >= 9) {
- var1 = 9;
- } else {
- var1 = 8;
- }
- }
-
- var0 = var0.substring(0, var1);
- return var0;
- }
- }
-
- public static void initCalc() {
- isNewValue = true;
- error = false;
- hasDecimal = false;
- negative = false;
- currValL = MathFP.toFP("0");
- currVal = new StringBuffer();
- currVal.append("0");
- numbers = new int[16];
- int var0 = numbers.length;
-
- for(int var1 = 0; var1 < var0; ++var1) {
- numbers[var1] = -1;
- }
-
- }
-
- public static void parseCurrValue() {
- StringBuffer var0 = new StringBuffer(getCurrValueParse());
- int var1 = numbers.length;
-
- for(int var2 = 0; var2 < var1; ++var2) {
- numbers[var2] = -1;
- }
-
- int var3 = numbers.length - 1;
-
- for(int var4 = var0.length() - 1; var4 >= 0; --var4) {
- if (var0.charAt(var4) == '.') {
- numbers[var3] = 10;
- } else if (var3 % 2 == 0) {
- numbers[var3 - 1] = Character.digit(var0.charAt(var4), 10);
- --var3;
- } else {
- numbers[var3] = Character.digit(var0.charAt(var4), 10);
- }
-
- --var3;
- }
-
- }
-
- public static void removeZeros() {
- for(int var0 = currVal.length() - 1; currVal.charAt(var0) != '.'; --var0) {
- if (currVal.charAt(currVal.length() - 1) == '0') {
- currVal.deleteCharAt(currVal.length() - 1);
- }
- }
-
- if (currVal.charAt(currVal.length() - 1) == '.') {
- currVal.deleteCharAt(currVal.length() - 1);
- }
-
- }
-
- public static int setCurrValue(String var0) {
- currVal.delete(0, currVal.length());
- currVal.append(var0);
- negative = false;
- if (currVal.charAt(0) == '-') {
- negative = true;
- currVal.deleteCharAt(0);
- }
-
- int var1 = currVal.length();
-
- for(int var2 = 0; var2 < var1; ++var2) {
- if (currVal.charAt(var2) == '.') {
- if (var2 > 8) {
- error = true;
- return 0;
- }
-
- if (decimal && var2 >= 8) {
- error = true;
- return 0;
- }
-
- if (decimal) {
- return 7 - var2;
- }
-
- return 1;
- }
- }
-
- return 0;
- }
- }
-